/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package jogopoo.Personagem;

import java.awt.Graphics2D;
import java.awt.Point;
import jogopoo.Grafico.GrafCenario;

/**
 *
 * @author acer_5542
 */
/**
 * Classe abstrata que eh estendida por outras mais especificas, possui
 * atributos protegidos, point do tipo Point e cenario do tipo GrafCenario.
 * @author acer_5542
 */
public abstract class Personagens {
/**
 * Construtor que recebe parametro do tipo GrafCenario, e instancia a posicao.
 * @param cenario
 */
    public Personagens(GrafCenario cenario) {
        this.cenario = cenario;
        this.posicao = new Point(0, 0);
    }
/**
 * Metodo abstrato que sera sobescrito por classes superiores
 * @param g2
 */
    public abstract void desenha(Graphics2D g2);
/**
 * Seta a posicao
 * @param posicao
 */
    public void setPosicao(Point posicao) {
        this.posicao = posicao;
    }
/**
 * Seta a posicao
 * @param x, y
 */
    public void setPosicao(int x,int y){
        this.posicao.x = x;
        this.posicao.y = y;
    }
/**
 * Seta a posicao
 * @param x, y
 */
    public void incrPosicao(int x,int y){
        this.posicao.x += x;
        this.posicao.y += y;
    }
/**
 * retorna a posicao
 * @return
 */
    public Point getPosicao() {
        return posicao;
    }
 /**
  * Retorna true se o objeto saiu fora da tela, false se nao.
  * @return false or true
  */
 public boolean saiuDaJanela(){
     if((posicao.x < 0 || posicao.x > 960 || posicao.y < 0 || posicao.y > 630)){
      return true;
     }
     return false;
    }
    protected GrafCenario cenario;
    protected Point posicao;
}

